import { RMIProxyObject } from "../../Engine/RMI/RMIProxyObject";
import { IAmuletPrx } from "./IAmuletPrx";
import { AMI_IAmulet_composeAmulet } from "./AMI_IAmulet_composeAmulet";
import { SerializeStream } from "../../Framework/Serialize/SerializeStream";
import { SeqStringHelper } from "../Public/SeqStringHelper";
import { Outgoing } from "../../Engine/RMI/Outgoing";
import { AMI_IAmulet_decomposeAmulet } from "./AMI_IAmulet_decomposeAmulet";
import { AMI_IAmulet_identifyAmulet } from "./AMI_IAmulet_identifyAmulet";
import { AMI_IAmulet_refreshAmulet } from "./AMI_IAmulet_refreshAmulet";
import { AMI_IAmulet_refreshAmuletReplace } from "./AMI_IAmulet_refreshAmuletReplace";
import { AMI_IAmulet_refreshPreView } from "./AMI_IAmulet_refreshPreView";
import { AMI_IAmulet_shiftAmulet } from "./AMI_IAmulet_shiftAmulet";
import { AMI_IAmulet_upgradeAmulet } from "./AMI_IAmulet_upgradeAmulet";
import { AMI_IAmulet_upgradeAmuletScore } from "./AMI_IAmulet_upgradeAmuletScore";
type int = number;
//class IAmuletPrxHelper
    
    export  class IAmuletPrxHelper extends RMIProxyObject implements IAmuletPrx
    {
        constructor()
        {
            
            super();name = "IAmulet";
            return;
        }

        public composeAmulet_async(arg1: AMI_IAmulet_composeAmulet, arg2: int, arg3: Array<any>, arg4: Array<any>): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("composeAmulet");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            SeqStringHelper.write(loc3, arg3);
            SeqStringHelper.write(loc3, arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public decomposeAmulet_async(arg1: AMI_IAmulet_decomposeAmulet, arg2: int, arg3: Array<any>, arg4: Array<any>): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("decomposeAmulet");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            SeqStringHelper.write(loc3, arg3);
            SeqStringHelper.write(loc3, arg4);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public identifyAmulet_async(arg1: AMI_IAmulet_identifyAmulet, arg2: int, arg3: int, arg4: Array<any>, arg5: Array<any>): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("identifyAmulet");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeInt(arg3);
            SeqStringHelper.write(loc3, arg4);
            SeqStringHelper.write(loc3, arg5);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public refreshAmulet_async(arg1: AMI_IAmulet_refreshAmulet, arg2: int, arg3: int, arg4: int, arg5: string, arg6: string, arg7: Array<any>): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("refreshAmulet");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeInt(arg3);
            loc3.writeInt(arg4);
            loc3.writeString(arg5);
            loc3.writeString(arg6);
            SeqStringHelper.write(loc3, arg7);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public refreshAmuletReplace_async(arg1: AMI_IAmulet_refreshAmuletReplace, arg2: int, arg3: string): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("refreshAmuletReplace");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeString(arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public refreshPreView_async(arg1: AMI_IAmulet_refreshPreView, arg2: string, arg3: int): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("refreshPreView");
            var loc3;
            (loc3 = new SerializeStream()).writeString(arg2);
            loc3.writeInt(arg3);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public shiftAmulet_async(arg1: AMI_IAmulet_shiftAmulet, arg2: int, arg3: int, arg4: string, arg5: string, arg6: Array<any>): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("shiftAmulet");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeInt(arg3);
            loc3.writeString(arg4);
            loc3.writeString(arg5);
            SeqStringHelper.write(loc3, arg6);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public upgradeAmulet_async(arg1: AMI_IAmulet_upgradeAmulet, arg2: int, arg3: int, arg4: string, arg5: Array<any>): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("upgradeAmulet");
            var loc3;
            (loc3 = new SerializeStream()).writeInt(arg2);
            loc3.writeInt(arg3);
            loc3.writeString(arg4);
            SeqStringHelper.write(loc3, arg5);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public upgradeAmuletScore_async(arg1: AMI_IAmulet_upgradeAmuletScore, arg2: string): void
        {
            var loc1=makeContext(session);
            var loc2=makeCall("upgradeAmuletScore");
            var loc3;
            (loc3 = new SerializeStream()).writeString(arg2);
            Outgoing.invokeAsync(loc1, loc2, loc3, arg1);
            return;
        }

        public static /* const */NAME: string="Message.Game.IAmulet";
    }
